package com.panda.mall.common.mallOrder.entity;

import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panda.mall.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
* 订单回退申请表
* mall_order_return
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("mall_order_return")
public class MallOrderReturn extends BaseEntity implements Serializable {

    /**
    * 申请信息id
    */
    @NotNull(message="[申请信息id]不能为空")
    @ApiModelProperty("申请信息id")
    private Long id;
    /**
    * 订单编号
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("订单编号")
    @Length(max= 40,message="编码长度不能超过40")
    private String orderNumber;
    /**
    * 用户id
    */
    @ApiModelProperty("用户id")
    private Long userId;
    /**
    * 用户姓名
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("用户姓名")
    @Length(max= 40,message="编码长度不能超过40")
    private String userName;
    /**
    * 退货人姓名
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("退货人姓名")
    @Length(max= 40,message="编码长度不能超过40")
    private String returnName;
    /**
    * 退货人电话
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("退货人电话")
    @Length(max= 40,message="编码长度不能超过40")
    private String returnPhone;
    /**
    * 退款金额
    */
    @ApiModelProperty("退款金额")
    private BigDecimal returnPrice;
    /**
    * 退货状态（0-待处理，1-退货中，2-已完成，3-已拒绝）
    */
    @ApiModelProperty("退货状态（0-待处理，1-退货中，2-已完成，3-已拒绝）")
    private Integer returnStatus;
    /**
    * 处理时间
    */
    @ApiModelProperty("处理时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date handleTime;
    /**
    * 处理备注
    */
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("处理备注")
    @Length(max= 50,message="编码长度不能超过50")
    private String handleMarks;
    /**
    * 处理人
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("处理人")
    @Length(max= 40,message="编码长度不能超过40")
    private String handleMan;
    /**
    * 库存商品id
    */
    @ApiModelProperty("库存商品id")
    private Long skuId;
    /**
    * 商品图片
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("商品图片")
    @Length(max= 500,message="编码长度不能超过500")
    private String skuImg;
    /**
    * 商品名称
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("商品名称")
    @Length(max= 255,message="编码长度不能超过255")
    private String skuName;
    /**
    * 商品品牌
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("商品品牌")
    @Length(max= 255,message="编码长度不能超过255")
    private String skuBrand;
    /**
    * 商品销售属性（json）
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("商品销售属性（json）")
    @Length(max= 500,message="编码长度不能超过500")
    private String skuAttrsVals;
    /**
    * 商品数量
    */
    @ApiModelProperty("商品数量")
    private Integer skuCount;
    /**
    * 商品单价
    */
    @ApiModelProperty("商品单价")
    private BigDecimal skuPrice;
    /**
    * 支付单价
    */
    @ApiModelProperty("支付单价")
    private BigDecimal skuRealPrice;
    /**
    * 退货原因
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("退货原因")
    @Length(max= 500,message="编码长度不能超过500")
    private String reason;
    /**
    * 详细描述
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("详细描述")
    @Length(max= 500,message="编码长度不能超过500")
    private String description;
    /**
    * 退货凭证
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("退货凭证")
    @Length(max= 500,message="编码长度不能超过500")
    private String evidence;
    /**
    * 备注
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("备注")
    @Length(max= 500,message="编码长度不能超过500")
    private String marks;
    /**
    * 收货人
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("收货人")
    @Length(max= 40,message="编码长度不能超过40")
    private String receiveMan;
    /**
    * 收货时间
    */
    @ApiModelProperty("收货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date receiveTime;
    /**
    * 收货备注
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("收货备注")
    @Length(max= 500,message="编码长度不能超过500")
    private String receiveRemarks;
    /**
    * 收货人电话
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("收货人电话")
    @Length(max= 40,message="编码长度不能超过40")
    private String receivePhone;
    /**
    * 收货地址
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("收货地址")
    @Length(max= 255,message="编码长度不能超过255")
    private String receiveAddress;
    /**
    * 公司地址
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("公司地址")
    @Length(max= 255,message="编码长度不能超过255")
    private String companyAddress;

}
